/*
 * Ten plik jest częścią programu JStat.
 * Autorem jest Damian Gorlach.
 * Plik źródłowy nie może być zmieniany ani rozpowszechniany bez zgody autora.
 * Wszelkie pytania należy kierować na adres mailowy: dmn@jabster.pl
 * Strona domowa programu: http://gdamian.ovh.org/jstat
 * Ostatnia modyfikacja: 25 maja 2008.
 */
package com.mrroman.linksender.settings.beanutils;

//import com.thoughtworks.xstream.XStream;
import java.beans.XMLDecoder;
import java.beans.XMLEncoder;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public abstract class BeanSaverLoader {

    public static void saveBean(String fileName, Object bean) {
        XMLEncoder out = null;
        try {
            File dir = (new File(fileName)).getParentFile().getCanonicalFile();
            if (dir.isDirectory() || dir.mkdirs()) {
                out = new XMLEncoder(new BufferedOutputStream(new FileOutputStream(fileName)));
                out.writeObject(bean);
                out.close();
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static Object loadBean(String fileName) {
        XMLDecoder in = null;
        Object result = null;
        try {
            in = new XMLDecoder(new BufferedInputStream(new FileInputStream(fileName)));
            try {
                result = in.readObject();
            } finally {
                in.close();
            }
        } catch (FileNotFoundException ex) {
            ex.printStackTrace();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        return result;
    }
}
